home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / QuickDraw 3D / Development / Interfaces / QD3DPascalInterfaces / QD3DShader.p < prev    next >
Encoding:
Text File  |  1996-11-15  |  6.1 KB  |  144 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DShader.p
  3.  
  4.      Contains:    QuickDraw 3D Shader / Color Routines                            
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.0.6
  7.                  Release:    Universal Interfaces 2.1.5d1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DShader;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DSHADER__}
  28. {$SETC __QD3DSHADER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DShaderIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37.  
  38. {$PUSH}
  39. {$ALIGN POWER}
  40. {$LibExport+}
  41.  
  42. {
  43. *****************************************************************************
  44.  **                                                                             **
  45.  **                                RGB Color routines                             **
  46.  **                                                                             **
  47.  ****************************************************************************
  48. }
  49. FUNCTION Q3ColorRGB_Set(VAR color: TQ3ColorRGB; r: Single; g: Single; b: Single): TQ3ColorRGBPtr; C;
  50. FUNCTION Q3ColorARGB_Set(VAR color: TQ3ColorARGB; a: Single; r: Single; g: Single; b: Single): TQ3ColorARGBPtr; C;
  51. FUNCTION Q3ColorRGB_Add({CONST}VAR c1: TQ3ColorRGB; {CONST}VAR c2: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  52. FUNCTION Q3ColorRGB_Subtract({CONST}VAR c1: TQ3ColorRGB; {CONST}VAR c2: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  53. FUNCTION Q3ColorRGB_Scale({CONST}VAR color: TQ3ColorRGB; scale: Single; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  54. FUNCTION Q3ColorRGB_Clamp({CONST}VAR color: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  55. FUNCTION Q3ColorRGB_Lerp({CONST}VAR first: TQ3ColorRGB; {CONST}VAR last: TQ3ColorRGB; alpha: Single; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  56. FUNCTION Q3ColorRGB_Accumulate({CONST}VAR src: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  57. {  Q3ColorRGB_Luminance really returns a pointer to a Single }
  58. FUNCTION Q3ColorRGB_Luminance({CONST}VAR color: TQ3ColorRGB; VAR luminance: Single): Ptr; C;
  59. {
  60. *****************************************************************************
  61.  **                                                                             **
  62.  **                                Shader Types                                 **
  63.  **                                                                             **
  64.  ****************************************************************************
  65. }
  66.  
  67. TYPE
  68.     TQ3ShaderUVBoundary         = LONGINT;
  69. CONST
  70.     kQ3ShaderUVBoundaryWrap        = {TQ3ShaderUVBoundary}0;
  71.     kQ3ShaderUVBoundaryClamp    = {TQ3ShaderUVBoundary}1;
  72.  
  73. {
  74. *****************************************************************************
  75.  **                                                                             **
  76.  **                                Shader Routines                                 **
  77.  **                                                                             **
  78.  ****************************************************************************
  79. }
  80. FUNCTION Q3Shader_GetType(shader: TQ3ShaderObject): TQ3ObjectType; C;
  81. FUNCTION Q3Shader_Submit(shader: TQ3ShaderObject; view: TQ3ViewObject): TQ3Status; C;
  82. FUNCTION Q3Shader_SetUVTransform(shader: TQ3ShaderObject; {CONST}VAR uvTransform: TQ3Matrix3x3): TQ3Status; C;
  83. FUNCTION Q3Shader_GetUVTransform(shader: TQ3ShaderObject; VAR uvTransform: TQ3Matrix3x3): TQ3Status; C;
  84. FUNCTION Q3Shader_SetUBoundary(shader: TQ3ShaderObject; uBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  85. FUNCTION Q3Shader_SetVBoundary(shader: TQ3ShaderObject; vBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  86. FUNCTION Q3Shader_GetUBoundary(shader: TQ3ShaderObject; VAR uBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  87. FUNCTION Q3Shader_GetVBoundary(shader: TQ3ShaderObject; VAR vBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  88. {
  89. *****************************************************************************
  90.  **                                                                             **
  91.  **                            Illumination Shader    Classes                         **
  92.  **                                                                             **
  93.  ****************************************************************************
  94. }
  95. FUNCTION Q3IlluminationShader_GetType(shader: TQ3ShaderObject): TQ3ObjectType; C;
  96. FUNCTION Q3PhongIllumination_New: TQ3ShaderObject; C;
  97. FUNCTION Q3LambertIllumination_New: TQ3ShaderObject; C;
  98. FUNCTION Q3NULLIllumination_New: TQ3ShaderObject; C;
  99. {
  100. *****************************************************************************
  101.  **                                                                             **
  102.  **        Texture Shader  - may use any type of Texture. (only 1 type in 1.0)     **
  103.  **                                                                             **
  104.  ****************************************************************************
  105. }
  106. FUNCTION Q3TextureShader_New(texture: TQ3TextureObject): TQ3ShaderObject; C;
  107. FUNCTION Q3TextureShader_GetTexture(shader: TQ3ShaderObject; VAR texture: TQ3TextureObject): TQ3Status; C;
  108. FUNCTION Q3TextureShader_SetTexture(shader: TQ3ShaderObject; texture: TQ3TextureObject): TQ3Status; C;
  109. {
  110. *****************************************************************************
  111.  **                                                                             **
  112.  **        Texture Objects - For 1.0, there  is 1 subclass: PixmapTexture.         **
  113.  **        More subclasses will be added in later releases.                     **
  114.  **            (e.g. PICTTexture, GIFTexture, MipMapTexture)                     **
  115.  **                                                                             **
  116.  ****************************************************************************
  117. }
  118. FUNCTION Q3Texture_GetType(texture: TQ3TextureObject): TQ3ObjectType; C;
  119. FUNCTION Q3Texture_GetWidth(texture: TQ3TextureObject; VAR width: LONGINT): TQ3Status; C;
  120. FUNCTION Q3Texture_GetHeight(texture: TQ3TextureObject; VAR height: LONGINT): TQ3Status; C;
  121. {
  122. *****************************************************************************
  123.  **                                                                             **
  124.  **        Pixmap Texture                                                         **
  125.  **            The TQ3StoragePixmap must contain a TQ3StorageObject that is a     **
  126.  **            Memory Storage ONLY for 1.0. We will support other storage          **
  127.  **            classes in later releases.                                         **
  128.  **                                                                             **
  129.  ****************************************************************************
  130. }
  131. FUNCTION Q3PixmapTexture_New({CONST}VAR pixmap: TQ3StoragePixmap): TQ3TextureObject; C;
  132. FUNCTION Q3PixmapTexture_GetPixmap(texture: TQ3TextureObject; VAR pixmap: TQ3StoragePixmap): TQ3Status; C;
  133. FUNCTION Q3PixmapTexture_SetPixmap(texture: TQ3TextureObject; {CONST}VAR pixmap: TQ3StoragePixmap): TQ3Status; C;
  134. {$ALIGN RESET}
  135. {$POP}
  136.  
  137. {$SETC UsingIncludes := QD3DShaderIncludes}
  138.  
  139. {$ENDC} {__QD3DSHADER__}
  140.  
  141. {$IFC NOT UsingIncludes}
  142.  END.
  143. {$ENDC}
  144.